Skip to content

zone log verbosity - #3613

Merged
jamesdaniels merged 3 commits into
angular:mainfrom
jamesdaniels:jamesdaniels_zoneLogVerbosity
Jan 16, 2025
Merged

jamesdaniels merged 3 commits into
angular:mainfrom
jamesdaniels:jamesdaniels_zoneLogVerbosity

Conversation

@jamesdaniels

@jamesdaniels jamesdaniels commented Jan 16, 2025 •

Copy link
Copy Markdown
Contributor
  • Add setLogLevel API, default to silent in Zoneless and !devMode, warn otherwise
  • Move AppCheckInstances to @angular/fire/app-check
  • Override verbosity on a bunch of firebase APIs
  • Cleanup

Fixes #3611, #3607, #3605

@jamesdaniels
jamesdaniels merged commit 35e0a98 into angular:main Jan 16, 2025
@jamesdaniels
jamesdaniels deleted the jamesdaniels_zoneLogVerbosity branch January 16, 2025 19:42
armando-navarro added a commit that referenced this pull request Sep 27, 2026
…3770)

AngularFire wrapped beforeAuthStateChanged so that registering the
hook added a pending task, cleared only when the callback first runs.
Firebase runs that callback only on a sign-in or sign-out, so for a
visitor who does neither the app never became stable. Registered on
the server, it failed ng build during route extraction and left
server-rendered requests without a response.

This restores the blockUntilFirst: false override from #3590, which
#3613 dropped without comment while adding log-level overrides next
to it. The callback still runs inside Angular's zone and injection
context, and its returned promise still reaches Firebase, so a
rejection still cancels the sign-in. A call outside an injection
context now logs its per-call warning only at the verbose level, as
onMessage does.

Fixes #3748

docs(auth): scope the beforeAuthStateChanged note to rc.1 and earlier

Merging this change closes #3748, so the section's present-tense note
would point at a closed issue. Also removed the false claim that the
@angular/fire/auth import makes ng build hang: the guide registers the
hook only in the browser, so its own build succeeds.
armando-navarro added a commit to armando-navarro/angularfire that referenced this pull request Oct 10, 2026
…ngular#3770)

AngularFire wrapped beforeAuthStateChanged so that registering the
hook added a pending task, cleared only when the callback first runs.
Firebase runs that callback only on a sign-in or sign-out, so for a
visitor who does neither the app never became stable. Registered on
the server, it failed ng build during route extraction and left
server-rendered requests without a response.

This restores the blockUntilFirst: false override from angular#3590, which
angular#3613 dropped without comment while adding log-level overrides next
to it. The callback still runs inside Angular's zone and injection
context, and its returned promise still reaches Firebase, so a
rejection still cancels the sign-in. A call outside an injection
context now logs its per-call warning only at the verbose level, as
onMessage does.

Fixes angular#3748

docs(auth): scope the beforeAuthStateChanged note to rc.1 and earlier

Merging this change closes angular#3748, so the section's present-tense note
would point at a closed issue. Also removed the false claim that the
@angular/fire/auth import makes ng build hang: the guide registers the
hook only in the browser, so its own build succeeds.

The docs/auth.md change is left out, since it edits a section of the
guide that 20.1.x does not have.

(cherry picked from commit f182972)
armando-navarro added a commit that referenced this pull request Oct 10, 2026
…3770)

AngularFire wrapped beforeAuthStateChanged so that registering the
hook added a pending task, cleared only when the callback first runs.
Firebase runs that callback only on a sign-in or sign-out, so for a
visitor who does neither the app never became stable. Registered on
the server, it failed ng build during route extraction and left
server-rendered requests without a response.

This restores the blockUntilFirst: false override from #3590, which
#3613 dropped without comment while adding log-level overrides next
to it. The callback still runs inside Angular's zone and injection
context, and its returned promise still reaches Firebase, so a
rejection still cancels the sign-in. A call outside an injection
context now logs its per-call warning only at the verbose level, as
onMessage does.

Fixes #3748

docs(auth): scope the beforeAuthStateChanged note to rc.1 and earlier

Merging this change closes #3748, so the section's present-tense note
would point at a closed issue. Also removed the false claim that the
@angular/fire/auth import makes ng build hang: the guide registers the
hook only in the browser, so its own build succeeds.

The docs/auth.md change is left out, since it edits a section of the
guide that 20.1.x does not have.

(cherry picked from commit f182972)
armando-navarro added a commit that referenced this pull request Nov 4, 2026
ɵzoneWrap holds a pending task from the moment a wrapped call gets a
callback until that callback first runs. For onLog, onTokenChanged,
the Database child listeners (onChildAdded on an empty node, the other
three until a later change), off, enableLogging, and the rxfire
streams stateChanges and auditTrail, nothing guarantees that first
run, so ApplicationRef.isStable can stay false for good and an SSR
build's route extraction times out, as #3748 reported for
beforeAuthStateChanged. They keep logLevel WARN, so only the pending
task changes.

isSupported in remote-config is the twelfth: #3613 put its
blockUntilFirst: false entry in the rxfire block, which exports no
isSupported, so it never applied, and #3759 removed the dead entry.

Server renders no longer wait for onChildAdded's first batch (onValue,
object and list still wait), and off(ref, type, cb) still detaches
nothing, because the wrapper replaces the callback it is given.

fromRef takes the event to listen for, and one blockUntilFirst value
cannot fit both uses: value always fires on attach, while a child event
may never fire. A hand-written fromRef in overrides.ts wraps rxfire's
fromRef both ways and picks by event, so
fromRef(ref, ListenEvent.value) holds a server render like object(ref)
and child events do not.

Fixes #3826
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Warning: Firebase API called outside injection context" on non-async functions

1 participant